"""
编码第一步：构造PO 模型，实现设置为空
    构造页面相关类和方法
        黄色的方块代表一个类
        每条线代表这个页面提供的操作
        箭头的始端为开始页面
        箭头的末端为跳转页面，即对应的方法需要返回跳转页面的实例对象
    实现暂时设置为空
"""
from selenium.webdriver.common.by import By

from lagou.selenium_exercise.po.base_page import BasePage


class AddMemberPage(BasePage):
    # 实现提取页面元素，单独维护
    _username_ele = (By.ID, "username")
    _id_ele = (By.ID, "memberAdd_acctid")
    _phone_ele = (By.ID, "memberAdd_phone")
    _save_ele = (By.CSS_SELECTOR, ".js_btn_save")
    _cancel_ele = (By.CSS_SELECTOR, ".js_btn_cancel")

    def add_member_detail(self,name,id,phone):
        """
        填写成员资料
        :return:返回通讯录页面的实例对象
        """
        # 导入操作复制在方法内部，解决循环导入问题
        from lagou.selenium_exercise.po.contact_page import ContactPage
        # 输入姓名，ID，手机号码
        # 加* 解包元组，传入两个参数
        # 如果不解包元组，传入为(By.ID, "username")，解包则传入2个参数：By.ID, "username"
        self.find(*self._username_ele).send_keys(name)
        self.find(*self._id_ele).send_keys(id)
        self.find(*self._phone_ele).send_keys(phone)
        # 保存
        self.find(*self._save_ele).click()
        return ContactPage(self.driver)

    def add_member_fail(self,name,id,phone):
        from lagou.selenium_exercise.po.contact_page import ContactPage
        self.find(*self._username_ele).send_keys(name)
        self.find(*self._id_ele).send_keys(id)
        self.find(*self._phone_ele).send_keys(phone)
        # 保存
        self.find(*self._save_ele).click()
        self.find(*self._cancel_ele).click()
        return ContactPage(self.driver)
